iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0

Pub/Sub 是非同步的 Message Service 主要是為了實踐高可用和可擴縮的服務,十多年來 Google 許多的核心服務都是基於 Pub/Sub 的架構搭建而成的。包括Google Ads、Google Search、Gmail 等Google 的產品,這些產品每秒發送超過 5 億的 Message 大小超過 1TB,可見 Pub/Sub 是能夠可靠的實現這些業務的。

Pub/Sub 是一套透過 Message 的提供方和使用方(Publisher、Subscriber)組成的系統,其中Publisher跟 Subscriber 是分離的,雙方通過非同步的方式進行 Message 的傳送

PubSub 主要由以下元件組成

  • Publisher:創建消息並將其發送(發佈)到指定主題上的消息傳遞服務。
  • Message:通過服務行動的數據。
  • Topic:代表消息源的命名實體。
  • Schema:控制 Pub/Sub 消息數據格式的命名實體。
  • Subscription:表示想要接收特定主題的消息的命名實體。
  • Subscriber :通過指定訂閱接收消息。

https://ithelp.ithome.com.tw/upload/images/20240911/20168312UgQD7Rctoq.png

大致說明一下 Pub/Sub的流程

  1. 兩個 Publisher(Publisher 1Publisher 2)向單個 Pub/Sub Topic 發送 Message。 Publisher 1 發送 Message APublisher 2 發送 Message B
  2. Topic 本身附加到了兩個 Subscription。 這兩個指標分別為 Subscription 1Subscription 2
  3. Topic 還會附加到 Schema中。
  4. 每個 Subscription 都會收到來自 Topic 的 A 和 B Message 的副本。
  5. Subscription 1 連接到兩個 Subscriber:Subscriber 1Subscriber 2。 這兩個 Subscriber 會從 Topic 接收一部分 Message。 在此示例中,Subscriber 1 接收 Message BSubscriber 2 從主題接收 Message A
  6. Subscription 2 僅連接到名為 Subscriber 3 的單個Subscriber。 因此,Subscriber 3 會從 Topic 接收所有 Message。

Pub/Sub 生命週期

https://ithelp.ithome.com.tw/upload/images/20240911/20168312uZXSCapghm.png

  1. Publisher 向 Pub/Sub Topic 發送 Message。

  2. Message 寫入到存儲空間。

  3. 在將 Message 寫入存儲空間時,Pub/Sub 會將 Message 傳遞到該 Topic 的所有附加Subscription。
    在此範例中,它是單個 Subscription。

  4. Subscription 將 Message 發送到附加的 Subscriber。

  5. Subscriber 向 Pub/Sub 發送確認,表明他們已處理該 Message。

    在每個 Subscription 的至少一個 Subscriber 確認 Message 後,Pub/Sub 會從存儲空間中刪除該 Message。


上一篇
Day9: 雲端服務介紹-Cloud SQL
下一篇
Day11: 雲端服務介紹-Memorystore for Redis
系列文
窮小子的售票系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言